/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package atualizacoes;

import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;

/**
 *
 * @author Douglas
 */
@Entity
@Table(name = "atualizacoes", catalog = "", schema = "")
@NamedQueries({
    @NamedQuery(name = "Atualizacoes.findAll", query = "SELECT a FROM Atualizacoes a"),
    @NamedQuery(name = "Atualizacoes.findByCodAtualizacao", query = "SELECT a FROM Atualizacoes a WHERE a.codAtualizacao = :codAtualizacao"),
    @NamedQuery(name = "Atualizacoes.findByTitulo", query = "SELECT a FROM Atualizacoes a WHERE a.titulo like :titulo"),
    @NamedQuery(name = "Atualizacoes.findByDatLanc", query = "SELECT a FROM Atualizacoes a WHERE a.datLanc = :datLanc"),
    @NamedQuery(name = "Atualizacoes.findByCodRevisao", query = "SELECT a FROM Atualizacoes a WHERE a.codRevisao = :codRevisao"),
    @NamedQuery(name = "Atualizacoes.findByCodTipoAtualizacao", query = "SELECT a FROM Atualizacoes a WHERE a.codTipoAtualizacao = :codTipoAtualizacao"),
    @NamedQuery(name = "Atualizacoes.findByCodRotina", query = "SELECT a FROM Atualizacoes a WHERE a.codRotina = :codRotina"),
    @NamedQuery(name = "Atualizacoes.findByUrgencia", query = "SELECT a FROM Atualizacoes a WHERE a.urgencia = :urgencia")})
public class Atualizacoes implements Serializable {
    @Transient
    private PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "cod_atualizacao")
    private Integer codAtualizacao;
    @Basic(optional = false)
    @Column(name = "titulo")
    private String titulo;
    @Basic(optional = false)
    @Column(name = "dat_lanc")
    @Temporal(TemporalType.TIMESTAMP)
    private Date datLanc;
    @JoinColumn(name = "cod_revisao",referencedColumnName="cod_revisao")
    @ManyToOne
    private Revisoes codRevisao;
    @JoinColumn(name = "cod_tipo_atualizacao",referencedColumnName="cod_tipo_atualizacao")
    @ManyToOne
    private TiposAtualizacoes codTipoAtualizacao;
    @JoinColumn(name = "cod_rotina",referencedColumnName="cod_rotina")
    @ManyToOne
    private Rotinas codRotina;
    @Basic(optional = false)
    @Column(name = "urgencia")
    private String urgencia;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "codAtualizacao")
    private List<Historicos> historicosList;

    public Atualizacoes() {
    }

    public Atualizacoes(Integer codAtualizacao) {
        this.codAtualizacao = codAtualizacao;
    }

    public Atualizacoes(Integer codAtualizacao, String titulo, Date datLanc, Revisoes codRevisao, TiposAtualizacoes codTipoAtualizacao, Rotinas codRotina, String urgencia) {
        this.codAtualizacao = codAtualizacao;
        this.titulo = titulo;
        this.datLanc = datLanc;
        this.codRevisao = codRevisao;
        this.codTipoAtualizacao = codTipoAtualizacao;
        this.codRotina = codRotina;
        this.urgencia = urgencia;
    }

    public Integer getCodAtualizacao() {
        return codAtualizacao;
    }

    public void setCodAtualizacao(Integer codAtualizacao) {
        Integer oldCodAtualizacao = this.codAtualizacao;
        this.codAtualizacao = codAtualizacao;
        changeSupport.firePropertyChange("codAtualizacao", oldCodAtualizacao, codAtualizacao);
    }

    public String getTitulo() {
        return titulo;
    }

    public void setTitulo(String titulo) {
        String oldTitulo = this.titulo;
        this.titulo = titulo;
        changeSupport.firePropertyChange("titulo", oldTitulo, titulo);
    }

    public Date getDatLanc() {
        return datLanc;
    }

    public void setDatLanc(Date datLanc) {
        Date oldDatLanc = this.datLanc;
        this.datLanc = datLanc;
        changeSupport.firePropertyChange("datLanc", oldDatLanc, datLanc);
    }

    public Revisoes getCodRevisao() {
        return codRevisao;
    }

    public void setCodRevisao(Revisoes codRevisao) {
        Revisoes oldCodRevisao = this.codRevisao;
        this.codRevisao = codRevisao;
        changeSupport.firePropertyChange("codRevisao", oldCodRevisao, codRevisao);
    }

    public TiposAtualizacoes getCodTipoAtualizacao() {
        return codTipoAtualizacao;
    }

    public void setCodTipoAtualizacao(TiposAtualizacoes codTipoAtualizacao) {
        TiposAtualizacoes oldCodTipoAtualizacao = this.codTipoAtualizacao;
        this.codTipoAtualizacao = codTipoAtualizacao;
        changeSupport.firePropertyChange("codTipoAtualizacao", oldCodTipoAtualizacao, codTipoAtualizacao);
    }

    public Rotinas getCodRotina() {
        return codRotina;
    }

    public void setCodRotina(Rotinas codRotina) {
        Rotinas oldCodRotina = this.codRotina;
        this.codRotina = codRotina;
        changeSupport.firePropertyChange("codRotina", oldCodRotina, codRotina);
    }

    public String getUrgencia() {
        return urgencia;
    }

    public void setUrgencia(String urgencia) {
        String oldUrgencia = this.urgencia;
        this.urgencia = urgencia;
        changeSupport.firePropertyChange("urgencia", oldUrgencia, urgencia);
    }

    public List<Historicos> getHistoricosList() {
        return historicosList;
    }

    public void setHistoricosList(List<Historicos> historicosList) {
        this.historicosList = historicosList;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (codAtualizacao != null ? codAtualizacao.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Atualizacoes)) {
            return false;
        }
        Atualizacoes other = (Atualizacoes) object;
        if ((this.codAtualizacao == null && other.codAtualizacao != null) || (this.codAtualizacao != null && !this.codAtualizacao.equals(other.codAtualizacao))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "atualizacoes.Atualizacoes[ codAtualizacao=" + codAtualizacao + " ]";
    }

    public void addPropertyChangeListener(PropertyChangeListener listener) {
        changeSupport.addPropertyChangeListener(listener);
    }

    public void removePropertyChangeListener(PropertyChangeListener listener) {
        changeSupport.removePropertyChangeListener(listener);
    }
    
}
